/**
 * CopyRight zh
 * 2020/03/31
 * positionLocation.js
 * version : 1.0.0
 */
'use strict'
// import Vue from 'vue'
// import AMap from 'AMap'
// Vue.use(AMap)
import Axios from 'axios'
/**
 * @param address 详细地址  省-市-区
 * @param callback 回调函数 返回resData
 * @return resData: {
 *    status: true, // 是否成功
      data: null, // 返回数据
      message: null, // 返回提示信息
 *  }
 * */
export function getLngLat(address, callback) {
  console.log('getLngLat()-', address)
  const resData = {
    status: true,
    data: null,
    message: null,
  }
  // 根据地址获取经纬度
  Axios.get('https://restapi.amap.com/v3/geocode/geo?key=c1a64dd269b2ba00372ee3c8ee54d963&&address='+address).then(res => {
    if (res.status ===200 && res.data.info==='OK') {
      const resp = res.data.geocodes[0]
      // console.error("getLngLat()-resp", resp)
      if (resp) {
        resData.data = resp.location.split(',')
        resData.message = '获取经纬度成功'
        callback(resData)
      } else {
        console.error("不存在该位置信息")
        resData.status = false
        resData.message = '不存在该位置信息'
        callback(resData)
      }
    } else {
      console.error("获取经纬度信息失败")
      resData.status = false
      resData.message = '获取经纬度信息失败'
      callback(resData)
    }
  })
}

/**
 * @param longitude  经度 英文：longitude  114.044815
 * @param latitude 纬度 英文：latitude   22.687373
 * @param callback 回调函数 返回resData
 * @return resData: {
 *    status: true, // 是否成功
      data: null, // 返回数据
      message: null, // 返回提示信息
 *  }
 * */
export function getLocation(longitude, latitude, callback) {
  // const that = this
  const location = longitude + ',' + latitude
  console.log('getLocation()-location', location)
  const resData = {
    status: true,
    data: null,
    message: null,
  }
  const nowLocation = {
    lat: '', // 纬度
    lon: '', // 经度
    province: '', // 省
    city: '', // 市
    district: '', // 区 县
    nowPlace: '', // 省-市-区
    addressDetail: '' // 详细地址
  }
  // 根据经纬度获取地址
  Axios.get('https://restapi.amap.com/v3/geocode/regeo?key=c1a64dd269b2ba00372ee3c8ee54d963&location='+location).then(res => {
    if (res.status === 200 && res.data.info==='OK') {
      const resp= res.data.regeocode.addressComponent
      const addressDetails = res.data.regeocode.formatted_address
      // console.log('getLocation()-resp',resp)
      if (resp) {
        nowLocation.province = resp.province
        if (resp.province ==='上海市'||resp.province ==='重庆市'||resp.province ==='天津市'||resp.province ==='北京市'||resp.province ==='香港特别行政区'||resp.province ==='澳门特别行政区') {
          if (resp.province === '香港特别行政区' || resp.province === '澳门特别行政区') {
            nowLocation.city = resp.province.replace('特别行政区', '')
          } else {
            nowLocation.city = resp.province
          }
        } else {
          nowLocation.city = resp.city
        }
        nowLocation.district = resp.district
        nowLocation.nowPlace = nowLocation.province + nowLocation.city + nowLocation.district
        nowLocation.lon = longitude
        nowLocation.lat = latitude
        nowLocation.addressDetail = resp.township + resp.neighborhood.name
        if (resp.district !== false) {
          nowLocation.addressDetail = addressDetails.split(resp.district)[1]
        } else if (resp.city !== false) {
          nowLocation.addressDetail = addressDetails.split(resp.city)[1]
        }
        resData.data = nowLocation
        resData.message = '获取位置信息成功'
        callback(resData)
      } else {
        console.error("不存在该位置信息")
        resData.status = false
        resData.message = '不存在该位置信息'
        callback(resData)
      }
    } else {
      console.error("获取地址信息失败")
      resData.status = false
      resData.message = '获取地址信息失败'
      callback(resData)
    }
  })
}
